/**
 * 单例内置对象
 * Object、 Array 和 String
 * Global、Math
 */

/**
 * Global
 * 一种兜底对象
 * 在全局作用域中定义的变量和函数都会变成 Global 对象的属性
 * 比如 isNaN()、 isFinite()、 parseInt()和 parseFloat()等
 */

/**
 * URL 编码方法是Global对象
 * encodeURI()和 encodeURIComponent()
 * decodeURI()和 decodeURIComponent()
 * 两者区别：
 * encodeURI()不对URL组件中的特殊字符进行编码
 * 比如在 https://www.baidu.com/abc/bc 这个URL中，https://www.baidu.com/ 是组件不会对特殊字符进行编码，而abc/bc中出现的特殊字符会被编码
 * encodeURIComponent()对所有出现的的特殊字符进行编码
 */
let uri = "http://www.wrox.com/illegal value.js#start";
console.log(encodeURI(uri)); // "http://www.wrox.com/illegal%20value.js#start"
console.log(encodeURIComponent(uri)); // "http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.js%23start"

/**
 * eval()方法
 * 用于执行字符串中的JavaScript代码
 * 下面两行代码是等价的
 */
eval("console.log('hi')");
console.log("hi");

/**
 * Global对象的属性
 * 见singleton.md
 */

/**
 * Math
 * min()和 max()方法
 * Math.ceil()、 Math.floor()、 Math.round() 和 Math.fround()
 * random()方法返回一个 0~1 范围内的随机数，其中包含 0 但不包含 1
 * Math的其他方法请参考 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math
 */






